namespace Digitalmes.Application.Mes.Equipments.Inspections;

/// <summary>
/// 设备自动点检项目 DTO 对象。
/// </summary>
public sealed class EquipAutoInspectionItemDto : Dto
{
    /// <summary>
    /// 点检计划 Id。
    /// </summary>
    public long PlanId { get; set; }

    /// <summary>
    /// 点检项名称
    /// </summary>
    [NotNull]
    public string? SubjectName { get; set; }

    /// <summary>
    /// 对应设备的信号点位。
    /// </summary>
    public string? Symbol { get; set; }

    /// <summary>
    /// 信号点位索引（数组值）。
    /// </summary>
    /// <remarks>若点位为数组，指定数组索引，从 1 开始</remarks>
    public int SymbolIndex { get; set; }

    /// <summary>
    /// 工艺参数下限值
    /// </summary>
    public double? MinLimit { get; set; }

    /// <summary>
    /// 工艺参数上限值
    /// </summary>
    public double? MaxLimit { get; set; }

    /// <summary>
    /// 测量单位（如°C, mm, 秒）
    /// </summary>
    public string? MeasurementUnit { get; set; }

    /// <summary>
    /// 换算因子，1 表示按原值，10、100、1000 表示实际值要放大对应倍数，0.1、0.01、0.001 表示实际值要缩小对应倍数。
    /// </summary>
    public string? Conversion { get; set; }

    /// <summary>
    /// 保留的小数位，0 或 null 表示不截取。
    /// </summary>
    /// <remarks>设置后，有换算按换算后的结果保留小数位，未有换算则按取值结果保留小数位。</remarks>
    public int? Digits { get; set; }

    /// <summary>
    /// 是否校验参数阈值
    /// </summary>
    public bool IsCheckThreshold { get; set; }

    public string? CreatedBy { get; set; }

    public DateTime CreatedTime { get; set; }

    public string? UpdatedBy { get; set; }

    public DateTime? UpdatedTime { get; set; }
}
